/* Copyright (c) 2004-2024 peigen.info. All rights reserved. */

package info.peigen.hotpot.business.account.manage.info;

import info.peigen.hotpot.business.account.facade.enums.AccountDirection;
import info.peigen.hotpot.business.account.facade.enums.AccountTransCode;
import info.peigen.hotpot.common.core.enums.Currency;
import info.peigen.hotpot.common.core.lang.money.Money;
import info.peigen.hotpot.common.service.base.manage.ManageInfoBase;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

import java.util.Date;

/**
 * <b>(AccountLogManageInfo)</b>
 * 管理后台 "账户流水记录" 值对象
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2023-08-29
 */
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class AccountLogManageInfo extends ManageInfoBase {
    /** 账户流水记录Id */
    String           accountLogId;
    /** 账户交易流水记录Id */
    String           transLogId;
    /** 交易Id */
    String           tradeId;
    /** 交易代码 */
    AccountTransCode transCode;
    /** 账户Id */
    String           accountId;
    /** 账户期初余额 */
    Money            balance;
    /** 账户期初余额币种 */
    Currency         balanceCurrency;
    /** 交易金额 */
    Money            transAmount;
    /** 交易金额币种 */
    Currency         transAmountCurrency;
    /** 借贷方向;Debit借记,Credit贷记 */
    AccountDirection direction;
    /** 交易时间 */
    Date             transTime;
    /** 清算时间;有别与交易时间,应是实际资金清算系统提供的交易完成时间,视为清算时间 */
    Date             settleTime;
    /** 备注 */
    String           memo;
    /** 逻辑删除标记 */
    Integer          enable;
}